package com.aliyun.messagemgt.domain.repository;

import com.aliyun.messagemgt.dto.SmsQuota;
import com.aliyun.messagemgt.dto.vo.SmsQuotaRequestVO;
import com.aliyun.messagemgt.dto.vo.SmsQuotaResponseVO;

import java.util.List;

/**
 * @Description
 * @Author hzw
 * @Date 2020/12/15 15:20
 * @Version 1.0
 */
public interface SmsQuotaRepository {
    /**
     * 插入 短信配额数据
     *
     * @param smsQuota 短信配额类
     * @return int
     */
    int insert(SmsQuota smsQuota);

    /**
     * 更新短信配额
     *
     * @param smsQuota 短信配额类
     * @return int
     */
    int update(SmsQuota smsQuota);

    /**
     * 查询短信配额列表
     *
     * @param smsQuotaRequestVO 查询类
     * @return list
     */
    List<SmsQuotaResponseVO> querySmsQuotaList(SmsQuotaRequestVO smsQuotaRequestVO);

    /**
     * 根据消息源id和生效状态查询短信配额
     *
     * @param msgSourceId 消息源UUID
     * @param status      生效状态
     * @return smsQuota
     */
    SmsQuota queryQuotaByMsgSourceIdAndStatus(String msgSourceId, Integer status);

    /**
     * 根据生效状态查询短信配额列表
     *
     * @param status 生效状态
     * @return list
     */
    List<SmsQuota> queryQuotaByStatus(Integer status);
}
